{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!-- 价格的经典随机行走（高斯分布）$\\longrightarrow$价格波动率的随机行走$\\longrightarrow$价格波动率的狂放随机（莱维稳定分布）\n",
    "\n",
    "信息论：期权和股票配置，\n",
    "\n",
    "分形，混沌，自组织\n",
    "\n",
    "利用遗传算法筛选 -->"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The Distribution of 1-D Classical Discrete Random Walk:\n",
    "$$\n",
    "p(t, n)=\\frac{1}{2^{t}}\\left(\\begin{array}{c}\n",
    "t \\\\\n",
    "\\frac{t+n}{2}\n",
    "\\end{array}\\right)\n",
    "$$\n",
    "The Average value：\n",
    "$$\n",
    "\\begin{aligned}\n",
    "\\langle n\\rangle &=\\sum_{n=-\\infty}^{\\infty} n p(t, n) \\\\\n",
    "&=0\n",
    "\\end{aligned}\n",
    "$$\n",
    "The Stardard Deviation：\n",
    "$$\n",
    "\\begin{aligned}\n",
    "s=\\sqrt{\\left\\langle n^{2}\\right\\rangle-\\langle n\\rangle^{2}} &=\\sqrt{\\sum_{n=-\\infty}^{\\infty} n^{2} p(t, n)} \\\\\n",
    "&\\propto\\sqrt{t} .\n",
    "\\end{aligned}\n",
    "$$\n",
    "When t is very large, p can be simplified by Stirling's formula:\n",
    "$$\n",
    "p(t, n) \\simeq \\frac{1}{\\sqrt{\\pi t}} e^{-\\frac{n^{2}}{t}}\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sympy import *\n",
    "from sympy.abc import t,n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "p=1/2**t * factorial(t) / (factorial((t+n)/2)*factorial((t-n)/2))\n",
    "f1=p.subs(t,72)\n",
    "f2=p.subs(t,180)\n",
    "f3 =p.subs(t,450)\n",
    "fv1=[]\n",
    "fv2=[]\n",
    "fv3=[]\n",
    "for i in range(-72,73):\n",
    "    fv1.append(f1.subs(n,i))\n",
    "for i in range(-180,181):\n",
    "    fv2.append(f2.subs(n,i))\n",
    "for i in range(-450,451):\n",
    "    fv3.append(f3.subs(n,i))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fa07cb36370>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(range(-72,73),fv1 ,label='t=72')\n",
    "plt.plot(range(-180,181),fv2,label='t=180' )\n",
    "plt.plot(range(-450,451),fv3,label='t=450' )\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1-D Discrete Quantum Walk: The Operation Space is The Product Between the Coin State and Position State; The Operstor is the Product Between the Diffusion Operator and Shift Operator\n",
    "\n",
    "The Initial State：\n",
    "$$\n",
    "|\\psi(0)\\rangle=\\frac{|0\\rangle-i|1\\rangle}{\\sqrt{2}}|n=0\\rangle\n",
    "$$\n",
    "The Diffusion Operator is the Product Between Hadamard Gate and Identity Matrix：$H \\otimes I$\n",
    "\n",
    "The Shift Operator：\n",
    "$$\n",
    "S=|0\\rangle\\langle 0|\\otimes \\sum_{n=-\\infty}^{\\infty}| n+1\\rangle\\langle n|+| 1\\rangle\\langle 1|\\otimes \\sum_{n=-\\infty}^{\\infty}| n-1\\rangle\\langle n|\n",
    "$$\n",
    "$$\n",
    "\\begin{aligned}\n",
    "&S|0\\rangle|n\\rangle=|0\\rangle|n+1\\rangle \\\\\n",
    "&S|1\\rangle|n\\rangle=|1\\rangle|n-1\\rangle\n",
    "\\end{aligned}\n",
    "$$\n",
    "The Definition of U：\n",
    "$$\n",
    "U=S(H \\otimes I)\n",
    "$$\n",
    "So：\n",
    "$$\n",
    "|\\psi(t)\\rangle=U^{t}|\\psi(0)\\rangle\n",
    "$$\n",
    "At the same time，$|\\psi(t)\\rangle$ can be written as following：\n",
    "$$\n",
    "\\left|\\psi(t)\\right\\rangle=\\sum_{n=-\\infty}^{\\infty}\\left(A_{n}(t)|0\\rangle+B_{n}(t)|1\\rangle\\right)|n\\rangle\n",
    "$$\n",
    "In order to get the Distribution p, We need to calculate $A_{n}(t)，B_{n}(t)$. The Normalization Condition：\n",
    "$$\n",
    "\\sum_{n=-\\infty}^{\\infty}\\left|A_{n}(t)\\right|^{2}+\\left|B_{n}(t)\\right|^{2}=1\n",
    "$$\n",
    "In addition，The Recurrence Formula：\n",
    "$$\n",
    "\\begin{aligned}\n",
    "&A_{n}(t+1)=\\frac{A_{n-1}(t)+B_{n-1}(t)}{\\sqrt{2}} \\\\\n",
    "&B_{n}(t+1)=\\frac{A_{n+1}(t)-B_{n+1}(t)}{\\sqrt{2}}\n",
    "\\end{aligned}\n",
    "$$\n",
    "The Initial Conditons：\n",
    "$$\n",
    "A_{n}(0)= \\begin{cases}\\frac{1}{\\sqrt{2}}, & \\text { if } n=0 \\\\ 0, & \\text { otherwise }\\end{cases}\n",
    "$$\n",
    "$$\n",
    "B_{n}(0)= \\begin{cases}\\frac{-i}{\\sqrt{2}}, & \\text { if } n=0 \\\\ 0, & \\text { otherwise }\\end{cases}\n",
    "$$\n",
    "The Probability Distribution：\n",
    "$$\n",
    "p(t, n)=\\left|A_{n}(t)\\right|^{2}+\\left|B_{n}(t)\\right|^{2}\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fa07cea3e80>]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "t=100\n",
    "p=np.zeros(2*t+1)\n",
    "A=np.zeros(2*t+3)*(1+0j)\n",
    "B=np.zeros(2*t+3)*(1+0j)\n",
    "A[t+1]=1/np.sqrt(2)\n",
    "B[t+1]=-1j/np.sqrt(2)\n",
    "for i in range(t):\n",
    "    aux1=A.copy()\n",
    "    aux2=B.copy()\n",
    "    for ii in range(1,2*t+2):\n",
    "        A[ii]=(aux1[ii-1]+aux2[ii-1])/np.sqrt(2)\n",
    "        B[ii]=(aux1[ii+1]-aux2[ii+1])/np.sqrt(2)\n",
    "for i in range(1,2*t+2):\n",
    "    p[i-1]=np.linalg.norm(A[i])**2+np.linalg.norm(B[i])**2\n",
    "plt.plot(range(-t,t+1),p)   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fa07cf9beb0>]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "dev=[]\n",
    "for t in range(100):\n",
    "    p=np.zeros(2*t+1)\n",
    "    A=np.zeros(2*t+3)*(1+0j)\n",
    "    B=np.zeros(2*t+3)*(1+0j)\n",
    "    A[t+1]=1/np.sqrt(2)\n",
    "    B[t+1]=-1j/np.sqrt(2)\n",
    "    for i in range(t):\n",
    "        aux1=A.copy()\n",
    "        aux2=B.copy()\n",
    "        for ii in range(1,2*t+2):\n",
    "            A[ii]=(aux1[ii-1]+aux2[ii-1])/np.sqrt(2)\n",
    "            B[ii]=(aux1[ii+1]-aux2[ii+1])/np.sqrt(2)\n",
    "    for i in range(1,2*t+2):\n",
    "        p[i-1]=np.linalg.norm(A[i])**2+np.linalg.norm(B[i])**2\n",
    "    s=0\n",
    "    for i in range(-t,t+1):\n",
    "        s+=i**2*p[i+t]\n",
    "    dev.append(np.sqrt(s))\n",
    "\n",
    "plt.plot(range(100),dev)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy.integrate import quad\n",
    "import math"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "beta=0\n",
    "\n",
    "c=0\n",
    "\n",
    "miu=0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [],
   "source": [
    "def fun(x,alpha,ii):\n",
    "    return 4*math.pi*math.exp(-(np.abs(x)**alpha))*math.cos(ii*x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fa056a83520>,\n",
       " <matplotlib.lines.Line2D at 0x7fa056a83640>]"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "alpha=1.5\n",
    "fv=[]\n",
    "for ii in np.arange(-4,4,0.1):\n",
    "    fv.append(quad(fun,0,10,args=(alpha,ii)))\n",
    "plt.plot(np.arange(-4,4,0.1),fv,'r')\n",
    "alpha=2\n",
    "fv=[]\n",
    "for ii in np.arange(-4,4,0.1):\n",
    "    fv.append(quad(fun,0,10,args=(alpha,ii)))\n",
    "plt.plot(np.arange(-4,4,0.1),fv,'b')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Classical Markov Chains：\n",
    "\n",
    "The Transition Matrix When time is $t$：\n",
    "$$\n",
    "M_{i j}(\\epsilon)= \\begin{cases} 1-d_{j}\\gamma \\epsilon +O\\left(\\epsilon^{2}\\right), & \\text { if } i=j \\\\ \\gamma \\epsilon+O\\left(\\epsilon^{2}\\right), & \\text { if } i \\neq j\\end{cases}\n",
    "$$\n",
    "Definding a Generating Matrix：\n",
    "$$\n",
    "H_{i j}=\\left\\{\\begin{aligned}\n",
    "d_{j} \\gamma, & \\text { if } i=j: \\\\\n",
    "-\\gamma, & \\text { if } i \\neq j \\text { and adjacent; } \\\\\n",
    "0, & \\text { if } i \\neq j \\text { and non-adjacent. }\n",
    "\\end{aligned}\\right.\n",
    "$$\n",
    "The Next State Just Bases On The Current State：\n",
    "$$\n",
    "M_{i j}(t+\\epsilon)=\\sum_{k} M_{i k}(t) M_{k j}(\\varepsilon)\n",
    "$$\n",
    "Calculating By The Top 3 Formula：\n",
    "$$\n",
    "\\begin{aligned}\n",
    "M_{i j}(t+\\epsilon) &=M_{i j}(t) M_{j j}(\\epsilon)+\\sum_{k\\neq j} M_{i k}(t) M_{k j}(\\epsilon) \\\\\n",
    "&=M_{i j}(t)\\left(1-\\epsilon H_{j j}\\right)-\\epsilon \\sum_{k\\neq j} M_{i k}(t) H_{k j}\n",
    "\\end{aligned}\n",
    "$$\n",
    "Making a Shift：\n",
    "$$\n",
    "\\frac{\\mathrm{d} M_{i j}(t)}{\\mathrm{d} t}=-\\sum_{k} H_{k j} M_{i k}(t)\n",
    "$$\n",
    "The Initial Conditions：\n",
    "$$\n",
    "M_{i j}(0)=\\delta_{i j}\n",
    "$$\n",
    "The Result is：\n",
    "$$\n",
    "M(t)=\\mathrm{e}^{-H t}\n",
    "$$\n",
    "The Change of Probability：\n",
    "$$\n",
    "\\vec{p}(t)=M(t) \\vec{p}(0)\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Continuous-Time Quantum Walks：\n",
    "\n",
    "Transforming M to U:\n",
    "$$\n",
    "U(t)=\\mathrm{e}^{-\\mathrm{i} H t}\n",
    "$$\n",
    "The Quantum state and Probability Distribution：\n",
    "$$\n",
    "|\\dot{\\psi}(t)\\rangle=U(t)|\\psi(0)\\rangle\n",
    "$$\n",
    "$$\n",
    "p_{k}=|\\langle k \\mid \\psi(t)\\rangle|^{2}\n",
    "$$\n",
    "$\\ket{k}$ is the state of the computational basis corresponding to the vertex $x_k$\n",
    "\n",
    "1-D Discrete Space Continuous Quantum Walk：\n",
    "$$\n",
    "H_{i j}= \\begin{cases}2 \\gamma, & \\text { if }=j \\\\ -\\gamma, & \\text { if } \\neq j \\text { and adjacent } \\\\ 0, & \\text { if } i \\neq j \\text { and non-adjacent }\\end{cases}\n",
    "$$\n",
    "$$\n",
    "H|n\\rangle=-\\gamma|n-1\\rangle+2 \\gamma|n\\rangle-\\gamma|n+1\\rangle\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy.linalg import expm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f822f8d1670>]"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "t=100\n",
    "gamma=1/(2*np.sqrt(2))\n",
    "H=np.zeros((2*t+1,2*t+1))\n",
    "for i in range(2*t+1):\n",
    "    H[i,i]=2*gamma\n",
    "for i in range(2*t):\n",
    "    H[i,i+1]=-gamma\n",
    "for i in range(1,2*t+1,1):\n",
    "    H[i,i-1]=-gamma\n",
    "psi0=np.zeros(2*t+1)\n",
    "psi0[t]=1\n",
    "psi=np.dot(expm(-1j*H*t),psi0)\n",
    "p=[]\n",
    "for i in range(2*t+1):\n",
    "    p.append(np.linalg.norm(psi[i])**2)\n",
    "plt.plot(range(-t,t+1),p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f822f948f10>]"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "dev=[]\n",
    "for t in range(100):\n",
    "    gamma=1/(2*np.sqrt(2))\n",
    "    H=np.zeros((2*t+1,2*t+1))\n",
    "    for i in range(2*t+1):\n",
    "        H[i,i]=2*gamma\n",
    "    for i in range(2*t):\n",
    "        H[i,i+1]=-gamma\n",
    "    for i in range(1,2*t+1,1):\n",
    "        H[i,i-1]=-gamma\n",
    "    psi0=np.zeros(2*t+1)\n",
    "    psi0[t]=1\n",
    "    psi=np.dot(expm(-1j*H*t),psi0)\n",
    "    s=0\n",
    "    for i in range(2*t+1):\n",
    "        s+=(i-t)**2*np.linalg.norm(psi[i])**2\n",
    "    dev.append(np.sqrt(s))\n",
    "plt.plot(range(100),dev)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Some Applications of Quantum Walk：\n",
    "\n",
    "\n",
    "\n",
    "①Quantum Verification of Matrix Products\n",
    "\n",
    "Buhrman H, Spalek R. Quantum verification of matrix products[J]. arXiv preprint quant-ph/0409035, 2004.\n",
    "\n",
    "\\\\\n",
    "\n",
    "②Quantum Search Algorithm\n",
    "\n",
    "Shenvi N, Kempe J, Whaley K B. Quantum random-walk search algorithm[J]. Physical Review A, 2003, 67(5): 052307.\n",
    "\n",
    "\\\\\n",
    "\n",
    "③Element Distinctness\n",
    "\n",
    "Ambainis A. Quantum walk algorithm for element distinctness[J]. SIAM Journal on Computing, 2007, 37(1): 210-239.\n",
    "\n",
    "\\\\\n",
    "\n",
    "④Group Commutativity \n",
    "\n",
    "Nayak A, Vishwanath A. Quantum walk on the line[J]. arXiv preprint quant-ph/0010117, 2000.\n",
    "\n",
    "\\\\\n",
    "\n",
    "⑤Generation of Entangled States\n",
    "\n",
    "Gratsea A, Lewenstein M, Dauphin A. Generation of hybrid maximally entangled states in a one-dimensional quantum walk[J]. Quantum Science and Technology, 2020, 5(2): 025002."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The relationship between quantum walk and Grover's algorithm\n",
    "$$\n",
    "C=C_{0} \\otimes \\mathcal{I}\n",
    "$$\n",
    "$$\n",
    "C_{0}=G=-\\mathcal{I}+2\\left|s^{C}\\right\\rangle\\left\\langle s^{C}\\right|\n",
    "$$\n",
    "$$\n",
    "S=\\sum_{d=0}^{n-1} \\sum_{\\vec{x}}(-1)^{f(x)}\\left|d, \\vec{x} \\oplus \\vec{e}_{d}\\right\\rangle\\langle d, \\vec{x}|\n",
    "$$\n",
    "$$\n",
    "f(x)= \\begin{cases}1, & \\text { if } \\text{ x is the target} \\\\ 0, & \\text { otherwise }\\end{cases}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "0adcc2737ebf6a4a119f135174df96668767fca1ef1112612db5ecadf2b6d608"
  },
  "kernelspec": {
   "display_name": "Python 3.8.5 64-bit",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
